package cn.iocoder.yudao.module.handguard.service.publicitytype;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.handguard.controller.admin.publicitytype.vo.*;
import cn.iocoder.yudao.module.handguard.dal.dataobject.publicitytype.PublicityTypeDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 16个公示 Service 接口
 *
 * @author 芋道源码
 */
public interface PublicityTypeService {

    /**
     * 创建16个公示
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createPublicityType(@Valid PublicityTypeCreateReqVO createReqVO);

    /**
     * 更新16个公示
     *
     * @param updateReqVO 更新信息
     */
    void updatePublicityType(@Valid PublicityTypeUpdateReqVO updateReqVO);

    /**
     * 删除16个公示
     *
     * @param id 编号
     */
    void deletePublicityType(Long id);

    /**
     * 获得16个公示
     *
     * @param id 编号
     * @return 16个公示
     */
    PublicityTypeDO getPublicityType(Long id);

    /**
     * 获得16个公示列表
     *
     * @return 16个公示列表
     */
    List<PublicityTypeDO> getPublicityTypeList();

    /**
     * 获得16个公示分页
     *
     * @param pageReqVO 分页查询
     * @return 16个公示分页
     */
    PageResult<PublicityTypeDO> getPublicityTypePage(PublicityTypePageReqVO pageReqVO);

     List<PublicitySelectBaseVO> getPublicitySelectListByClassName(String className,String typesName);

     List<PublicitySelectBaseVO> getPublicitySelectListByTypesName(String typesName,Long orderId);

    /**
     * 获得16个公示列表, 用于 Excel 导出
     *
     * @param exportReqVO 查询条件
     * @return 16个公示列表
     */
    List<PublicityTypeDO> getPublicityTypeList(PublicityTypeExportReqVO exportReqVO);

}
